package main.java.sq;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import main.java.utiles.InterfazUsuario;



public class SondaEspacial extends Selecciones implements Accion {
	private int idJugador;
	private boolean amarilla;
	private boolean roja;
	private boolean valla;
	public SondaEspacial(){
		idJugador=-1;
		valla=false;
	}
	@Override
	public void ejecutarAccion() {
		System.out.println("Sonda Espacial\r\n");
		Partida partida=Partida.getPartida();
		Jugador jugadoract=partida.getJugadorPorId(idJugador);
		List<Nave> listaNaves=new ArrayList<Nave>();
		listaNaves.addAll(jugadoract.tieneNave(TipoNave.Scout));
		listaNaves.addAll(jugadoract.tieneNave(TipoNave.Destructor));
		List<Casilla> listaPlanetsConNave=new ArrayList<Casilla>();
		Iterator<Nave> itnav=listaNaves.iterator();
		while(itnav.hasNext()){
			listaPlanetsConNave.add(itnav.next().getCasilla());
		}
		Casilla planetaSeleccionado=seleccionaSector(listaPlanetsConNave);
		muestraSector(planetaSeleccionado);
		

	}
	
	@Override
	public int getIdJugador() {
		
		return idJugador;
	}
	@Override
	public void setIdJugador(int idJugador) {
		this.idJugador=idJugador;
		
	}

	@Override
	public boolean getAmarilla() {
		return this.amarilla;
	}
	
	public String toString(){
		return "Sonda Espacial";
	}
	@Override
	public boolean getRoja() {
		return this.roja;
	}

	@Override
	public boolean getTieneConsul() {
		return this.getIdJugador()>0;
	}

	@Override
	public void setAmarilla(boolean amarilla) {
		this.amarilla = amarilla;
	}

	@Override
	public void setRoja(boolean roja) {
		this.roja = roja;
	}

	@Override
	public boolean esRealizable() {
		Boolean tienenaves=false;
		Partida partida=Partida.getPartida();
		Jugador jugact=partida.getJugadorPorId(idJugador);
		if(jugact.tieneNave(TipoNave.Scout).size()>0 || jugact.tieneNave(TipoNave.Destructor).size()>0){
			tienenaves=true;
		}
		return tienenaves;
		
	}

		
		/**
		 */
		public Casilla seleccionaSector(List<Casilla> lp){
		return super.seleccionaCasilla(lp); }

			
			/**
			 */
			public void muestraSector(Casilla p){
				
				p.setPlanetaOculto(false);
				InterfazUsuario.mostrarCasilla(p);
				p.setPlanetaOculto(true);
			}
			@Override
			public boolean getValla() {
				return valla;
			}
			@Override
			public void setValla(boolean valla) {
				this.valla=valla;
				
			}

}
